<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

<script>
  // 1. 使用setTimeout。
  // setTimeout(() => {
  //   console.log("Hello World");
  // }, 1000)

  // 参数 -> 函数(resolve, reject)。
  // resolve, reject 本身又是函数。
  // 链式编程。
  // 什么情况下会用到Promise?
  // 一般情况下有一部操作时使用 Promise 对异步操作进行封装。
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve();
    }, 1000);
  }).then(() => {
    console.log("Hello World");
    console.log("Hello World");
    console.log("Hello World");
    console.log("Hello World");
    console.log("Hello World");
    console.log("Hello World");

    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve();
      }, 1000);
    })
  }).then(() => {
    console.log("Hello VueJS");
    console.log("Hello VueJS");
    console.log("Hello VueJS");
    console.log("Hello VueJS");
    console.log("Hello VueJS");
    console.log("Hello VueJS");

    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve();
      }, 1000);
    })
  }).then(() => {
    console.log("Hello Webpack");
    console.log("Hello Webpack");
    console.log("Hello Webpack");
    console.log("Hello Webpack");
    console.log("Hello Webpack");
    console.log("Hello Webpack");
  })
</script>

</body>
</html>